package com.aos.entity;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.Date;

/**
 * @ClassName Application
 * @Description:应用
 * @Author wumingwang
 * @Date 2018/9/5 9:14
 * @Version 1.0
 */
@Data
public class Application implements Serializable {

    private static final long serialVersionUID = -1551047419881084415L;

    /**主键、自增*/
    @ApiModelProperty(hidden = true)
    private Long id;

    /**系统代码(系统唯一)*/
    @NotNull(message="应用代码不能为空")
    @Size(min=1,max=32,message="应用代码长度必须在1~32位")
    private String code;

    /**应用名字*/
    @NotNull(message="应用名字不能为空")
    @Size(min=1,max=50,message="应用名字长度必须在1~50位")
    private String name;

    /**系统状态【1:可用 默认；2不可用】;可用系统返回权限，不可用系统不返回权限*/
    @NotNull(message="应用状态不能为空")
    @Pattern(regexp = "^\\d{1}$",message="应用状态只能是1位数字")
    private String state;

    /**联系人*/
    @Size(max=20,message="联系人名字长度不得超过20位")
    private String contact;

    /**联系电话*/
    @Size(max=11,message="联系电话长度不得超过11位")
    private String mobile;

    /**创建时间*/
    @ApiModelProperty(hidden = true)
    private Date createdTimestamp;

    /**最后修改时间*/
    @ApiModelProperty(hidden = true)
    private Date updatedDatetime;

    /**应用权限实时更新接口url地址(例:http://localhost:8080/permission/update,参数固定:userid、permissions)*/
    @Size(max=200,message="应用权限实时更新接口url长度不得超过200")
    private String permissionUpdateUrl;
}
